package org.ndx.majick.ui.file;

import javax.swing.JFileChooser;
import javax.swing.filechooser.FileFilter;

import org.ndx.majick.properties.Property;
import org.ndx.majick.properties.util.PropertyUtils;
import org.ndx.majick.ui.IPropertyUIMetadata;
import org.ndx.majick.ui.object.ObjectPropertyMetadata;

public class FilePropertyMetadata extends ObjectPropertyMetadata implements
		IPropertyUIMetadata {
	/**
	 * When value is true, show full path in all display fields.
	 */
	Property<Boolean> showFullPath = PropertyUtils.create(Boolean.class, FilePropertyMetadata.class+".showFullPath", support, Boolean.TRUE);
	/**
	 * When value is true, show file extension in all display fields.
	 */
	Property<Boolean> showExtension = PropertyUtils.create(Boolean.class, FilePropertyMetadata.class+".showExtension", support, Boolean.TRUE);
	/**
	 * File filter used to selkect which files can be visible in the file chooser used to edit the file path
	 */
	Property<FileFilter> fileFilter = PropertyUtils.create(FileFilter.class, FilePropertyMetadata.class+".fileFilter", support);
	/**
	 * File selection mode used in chooser. This is one of the constants declared to be usable by {@link JFileChooser#setFileSelectionMode}
	 */
	Property<Integer> fileSelectionMode = PropertyUtils.create(Integer.class, FilePropertyMetadata.class+".fileSelectionMode", support, JFileChooser.FILES_AND_DIRECTORIES);
	/**
	 * Approve button text
	 */
	Property<String> approvedButtonText = PropertyUtils.create(String.class, FilePropertyMetadata.class+".approvedButtonText", support, "OK");
}
